Preferred Tech Stack
APIs:
- .NET Core 3.1 (C#);
- AWS Lambda;
- Serverless framework.
- AWS API Gateway;
- Hackney Lambda authoriser (for authentication).
- [See more](../API-Practices and tools/lambda_authoriser);
- FxCop for static code analysis.
- dotnet-format for linting.
- [See more](../API-Practices and tools/linting);
- AWS Canaries for availability monitoring.
Testing:
- nUnit;
- FluentAssertions;
- Moq;
- Bogus (Faker) for faking test data;
- AutoFixture;
- WebApplicationFactory (Microsoft.AspNetCore.Mvc.Testing).
- For bootstrapping the application (API) in memory and run end-to-end tests;
- Docker & docker-compose.
- For spinning up DB image containers and running tests against that database ;
- During local development and during test run as part of CI/CD;
For more guidance on testing, go to the testing section.
Common:
- Swagger documentation.
- For API design prior to implementation;
- Automated Swagger docs for each API endpoint deployed;
- [See more](../../API Documentation/swagger_documentation.md);
- CircleCI for CI/CD.
- GitHub for version control.
- AWS for cloud hosting;
- AWS CloudWatch for monitoring;
- Terraform for Infrastructure as Code (IaC) (e.g. setting up AWS DMS).
- AWS Parameter Store for secrets (connection string and similar);